home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm36.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  48.5 KB  |  1,697 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:CST_ATT_BOOLEAN.arguments*/
  10. T0* r580try_to_undefine(T580* C,T0* a1,T0* a2){
  11. T0* R=NULL;
  12. X776undefine_in(a1,a2);
  13. R=r580try_to_undefine_aux(C,a1,a2);
  14. /*IF*/if ((R)!=((void*)(NULL))) {
  15. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T580*)C))->_clients/*20*/);
  16. /*]*/
  17. }
  18. else {
  19. r605fatal_undefine(((T605*)a2),a1);
  20. }
  21. /*FI*/return R;
  22. }
  23. /*No:CST_ATT_BOOLEAN.is_deferred*/
  24. void r580add_into(T580* C,T0* a1){
  25. T0* _fn=NULL;
  26. int _i=0;
  27. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T580*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  28. _i=1;
  29. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T580*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  30. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T580*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  31. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  32. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  33. r683add_position(X776start_position(_fn));
  34. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T580*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  35. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  36. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  37. r7append(((T7*)(oBC683explanation)),b1);
  38. }/*]*/
  39. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  40. }
  41. else {
  42. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  43. }
  44. /*FI*/_i=(_i)+(1);
  45. }
  46. }
  47. T0* r580try_to_undefine_aux(T580* C,T0* a1,T0* a2){
  48. T0* R=NULL;
  49. r683add_position(r580start_position(C));
  50. r580error(X776start_position(a1),((T0*)ms1_321));
  51. r605fatal_undefine(((T605*)a2),a1);
  52. return R;
  53. }
  54. void r580make(T580* C,T0* a1,T0* a2,T0* a3){
  55. r580make_e_feature(C,a1,a2);
  56. C->_value_mem=a3;
  57. }
  58. /*No:CST_ATT_BOOLEAN.nb_errors*/
  59. /*No:CST_ATT_BOOLEAN.set_header_comment*/
  60. T0* r580start_position(T580* C){
  61. T0* R=NULL;
  62. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T580*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  63. return R;
  64. }
  65. T0* r580to_run_feature(T580* C,T0* a1,T0* a2){
  66. T0* R=NULL;
  67. T0* _rc=NULL;
  68. _rc=X291run_class(a1);
  69. R=r355at(((T355*)_rc),a2);
  70. if(NULL!=(R))switch(((T0*)R)->id) {
  71. case 808: 
  72. break;
  73. default:
  74. R=NULL;
  75. };/*IF*/if ((R)==((void*)(NULL))) {
  76. {T808*n=malloc(sizeof(*n));
  77. *n=M808;
  78. r808make(n,a1,a2,(T0*)C);
  79. R=(T0*)n;
  80. }
  81. }
  82. /*FI*/return R;
  83. }
  84. /*No:CST_ATT_BOOLEAN.ensure_assertion*/
  85. /*No:CST_ATT_BOOLEAN.code_require*/
  86. /*No:CST_ATT_BOOLEAN.result_type*/
  87. /*No:CST_ATT_BOOLEAN.em1*/
  88. /*No:CST_ATT_BOOLEAN.set_clients*/
  89. /*No:CST_ATT_BOOLEAN.em2*/
  90. /*No:CST_ATT_BOOLEAN.value*/
  91. /*No:CST_ATT_BOOLEAN.require_assertion*/
  92. /*No:CST_ATT_BOOLEAN.names*/
  93. /*No:CST_ATT_BOOLEAN.value_mem*/
  94. int r580can_hide(T580* C,T0* a1,T0* a2){
  95. int R=0;
  96. /*IF*/if (((((T580*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  97. /*IF*/if ((((((T580*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  98. r683add_position(X359start_position(a1));
  99. r580error(r580start_position(C),((T0*)ms5_359));
  100. }
  101. /*FI*/}
  102. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  103. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  104. r580error(r580start_position(C),((T0*)ms6_359));
  105. }
  106. /*FI*/}
  107. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  108. /*IF*/if (((((T580*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  109. /*IF*/if (!(X291is_a_in((((T580*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  110. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  111. r7append(((T7*)(oBC683explanation)),b1);
  112. }/*]*/
  113. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  114. r7append(((T7*)(oBC683explanation)),b1);
  115. }/*]*/
  116. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  117. }
  118. /*FI*/}
  119. /*FI*/}
  120. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  121. /*IF*//*AF*//*AE*/
  122. /*FI*/}
  123. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  124. return R;
  125. }
  126. /*No:CST_ATT_BOOLEAN.header_comment*/
  127. int r580is_merge_with(T580* C,T0* a1,T0* a2){
  128. int R=0;
  129. /*IF*/if (((((T580*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  130. /*IF*/if ((((((T580*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  131. r683add_position(X359start_position(a1));
  132. r580error(r580start_position(C),((T0*)ms2_359));
  133. }
  134. /*FI*/}
  135. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  136. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  137. r580error(r580start_position(C),((T0*)ms3_359));
  138. }
  139. /*FI*/}
  140. /*FI*//*IF*/if (((((T580*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  141. /*IF*/if (!(X291is_a_in((((T580*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  142. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  143. }
  144. /*FI*/}
  145. /*FI*//*IF*//*AF*//*AE*/
  146. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  147. return R;
  148. }
  149. /*No:CST_ATT_BOOLEAN.fz_dot*/
  150. /*No:CST_ATT_BOOLEAN.first_name*/
  151. /*No:CST_ATT_BOOLEAN.clients*/
  152. void r580collect_for(int a1){
  153. /*IF*/if ((a1)==(1001)) {
  154. /*IF*//*AF*//*AE*/
  155. /*FI*/}
  156. else {
  157. /*IF*//*AF*//*AE*/
  158. /*FI*/}
  159. /*FI*/}
  160. void r580error(T0* a1,T0* a2){
  161. r683add_position(a1);
  162. r683error(((T683*)(oBC364eh)),a2);
  163. }
  164. /*No:CST_ATT_BOOLEAN.base_class*/
  165. void r580make_e_feature(T580* C,T0* a1,T0* a2){
  166. C->_names=a1;
  167. C->_result_type=a2;
  168. }
  169. /*No:TYPE_INTEGER.id*/
  170. /*No:TYPE_INTEGER.jvm_target_descriptor_in*/
  171. /*No:TYPE_INTEGER.jvm_if_x_eq*/
  172. int r788has_creation(T788* C,T0* a1){
  173. int R=0;
  174. r683add_position(X776start_position(a1));
  175. r788error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T788*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  176. return R;
  177. }
  178. /*No:TYPE_INTEGER.is_anchored*/
  179. /*No:TYPE_INTEGER.us_integer*/
  180. /*No:TYPE_INTEGER.is_array*/
  181. int r788is_a(T788* C,T0* a1){
  182. int R=0;
  183. /*IF*/if (((X291is_integer(a1))||(X291is_double(a1)))||(X291is_real(a1))) {
  184. R=1;
  185. }
  186. else {
  187. R=r605is_subclass_of(((T605*)(r788base_class(C))),X291base_class(a1));
  188. /*IF*/if (R) {
  189. r788used_as_reference();
  190. }
  191. /*FI*/}
  192. /*FI*//*IF*/if (!(R)) {
  193. r683add_type((T0*)C,((T0*)ms71_470));
  194. r683add_type(a1,((T0*)ms67_470));
  195. }
  196. /*FI*/return R;
  197. }
  198. /*No:TYPE_INTEGER.jvm_to_reference*/
  199. /*No:TYPE_INTEGER.run_type*/
  200. /*No:TYPE_INTEGER.is_pointer*/
  201. /*No:TYPE_INTEGER.is_dummy_expanded*/
  202. int r788jvm_push_default(void){
  203. int R=0;
  204. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  205. /*]*/
  206. R=1;
  207. return R;
  208. }
  209. /*No:TYPE_INTEGER.is_string*/
  210. /*No:TYPE_INTEGER.is_like_feature*/
  211. /*No:TYPE_INTEGER.is_like_current*/
  212. void r788make(T788* C,T0* a1){
  213. {T451*n=malloc(sizeof(*n));
  214. *n=M451;
  215. r451make(n,((T0*)ms15_473),a1);
  216. C->_base_class_name=(T0*)n;
  217. }
  218. }
  219. /*No:TYPE_INTEGER.nb_errors*/
  220. /*No:TYPE_INTEGER.us_item*/
  221. void r788load_ref(T0* a1){
  222. T0* _rf=NULL;
  223. T0* _rc=NULL;
  224. T0* _cn=NULL;
  225. {T451*n=malloc(sizeof(*n));
  226. *n=M451;
  227. r451make(n,a1,NULL);
  228. _cn=(T0*)n;
  229. }
  230. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  231. r355set_at_run_time(((T355*)_rc));
  232. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  233. }
  234. int fBC364type_integer_ref=0;
  235. T0*oBC364type_integer_ref=NULL;
  236. T0* r788type_integer_ref(void){
  237. if (fBC364type_integer_ref==0){
  238. T0* R=NULL;
  239. T0* _integer_ref=NULL;
  240. fBC364type_integer_ref=1;
  241. {T451*n=malloc(sizeof(*n));
  242. *n=M451;
  243. r451make(n,((T0*)ms16_473),NULL);
  244. _integer_ref=(T0*)n;
  245. }
  246. {T657*n=malloc(sizeof(*n));
  247. *n=M657;
  248. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_integer_ref);
  249. /*]*/
  250. R=(T0*)n;
  251. }
  252. oBC364type_integer_ref=R;}
  253. return oBC364type_integer_ref;}
  254. /*No:TYPE_INTEGER.jvm_return_code*/
  255. int fBC788check_type=0;
  256. void r788check_type(T788* C){
  257. if (fBC788check_type==0){
  258. T0* _rc=NULL;
  259. T0* _bc=NULL;
  260. fBC788check_type=1;
  261. _bc=r788base_class(C);
  262. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  263. _rc=r788run_class(C);
  264. }
  265. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  266. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  267. r788error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T788*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_788));
  268. }
  269. /*FI*/}
  270. /*FI*/}}
  271. /*No:TYPE_INTEGER.jvm_xnewarray*/
  272. /*No:TYPE_INTEGER.jvm_descriptor_in*/
  273. /*No:TYPE_INTEGER.start_position*/
  274. /*No:TYPE_INTEGER.fz_inako*/
  275. /*No:TYPE_INTEGER.is_user_expanded*/
  276. /*No:TYPE_INTEGER.is_character*/
  277. T0* r788written_mark(void){
  278. T0* R=NULL;
  279. R=((T0*)ms15_473);
  280. return R;
  281. }
  282. /*No:TYPE_INTEGER.is_run_type*/
  283. T0* r788to_runnable(T788* C,T0* a1){
  284. T0* R=NULL;
  285. R=(T0*)C;
  286. r788check_type(C);
  287. return R;
  288. }
  289. /*No:TYPE_INTEGER.is_formal_generic*/
  290. T0* r788generic_list(T788* C){
  291. T0* R=NULL;
  292. r788fatal_error_generic_list(C);
  293. return R;
  294. }
  295. /*No:TYPE_INTEGER.fz_30*/
  296. /*No:TYPE_INTEGER.is_real*/
  297. /*No:TYPE_INTEGER.us_integer_ref*/
  298. /*No:TYPE_INTEGER.is_bit*/
  299. void r788fatal_error_generic_list(T788* C){
  300. r683add_type((T0*)C,((T0*)ms12_291));
  301. r683print_as_fatal_error(((T683*)(oBC364eh)));
  302. }
  303. /*No:TYPE_INTEGER.jvm_check_class_invariant*/
  304. /*No:TYPE_INTEGER.jvm_xaload*/
  305. T0* r788smallest_ancestor(T788* C,T0* a1){
  306. T0* R=NULL;
  307. T0* _rto=NULL;
  308. _rto=X291run_type(a1);
  309. /*IF*/if (X291is_integer(_rto)) {
  310. R=(T0*)C;
  311. }
  312.  else if (X291is_real(_rto)) {
  313. R=a1;
  314. }
  315.  else if (X291is_double(_rto)) {
  316. R=a1;
  317. }
  318. else {
  319. R=r657smallest_ancestor(((T657*)(r788type_integer_ref())),_rto);
  320. }
  321. /*FI*/return R;
  322. }
  323. /*No:TYPE_INTEGER.is_boolean*/
  324. /*No:TYPE_INTEGER.is_double*/
  325. int r788jvm_stack_space(void){
  326. int R=0;
  327. /*IF*//*AF*//*AE*/
  328. R=1;
  329. /*FI*/return R;
  330. }
  331. T0* r788run_class(T788* C){
  332. T0* R=NULL;
  333. R=r604run_class((T0*)C);
  334. return R;
  335. }
  336. T0* r788run_time_mark(void){
  337. T0* R=NULL;
  338. R=((T0*)ms15_473);
  339. return R;
  340. }
  341. int r788is_a_in(T788* C,T0* a1,T0* a2){
  342. int R=0;
  343. T0* _ct=NULL;
  344. T0* _t2=NULL;
  345. T0* _t1=NULL;
  346. /*IF*/if ((r788written_mark())==((void*)(X291written_mark(a1)))) {
  347. R=1;
  348. }
  349. else {
  350. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  351. _t1=r788to_runnable(C,_ct);
  352. _t2=X291to_runnable(a1,_ct);
  353. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  354. R=1;
  355. }
  356. else {
  357. R=X291is_a(_t1,_t2);
  358. }
  359. /*FI*/}
  360. /*FI*/return R;
  361. }
  362. T0* r788look_up_for(T788* C,T0* a1,T0* a2){
  363. T0* R=NULL;
  364. R=r605look_up_for(((T605*)(r788base_class(C))),a1,a2);
  365. return R;
  366. }
  367. int r788jvm_convert_to(T0* a1){
  368. int R=0;
  369. /*IF*/if (X291is_reference(a1)) {
  370. /*[IRF3.2jvm_to_reference*/{T0* _ca=NULL;
  371. int _idx=0;
  372. T0* _rc=NULL;
  373. _ca=oBC364code_attribute;
  374. _rc=r657run_class(((T657*)(r788type_integer_ref())));
  375. _idx=r355fully_qualified_constant_pool_index(((T355*)_rc));
  376. r256opcode_new(((T256*)_ca),_idx);
  377. /*[IRF3.4opcode_dup_x1*/r256opcode(((T256*)_ca),90,1);
  378. /*]*/
  379. /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0);
  380. /*]*/
  381. _idx=r95idx_fieldref4(((T95*)(oBC364constant_pool)),_idx,((T0*)ms86_473),((T0*)ms162_470));
  382. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  383. }/*]*/
  384. R=1;
  385. }
  386.  else if (X291is_real(a1)) {
  387. /*[IRF3.4opcode_i2f*/r256opcode(((T256*)(oBC364code_attribute)),134,1);
  388. /*]*/
  389. R=1;
  390. }
  391.  else if (X291is_double(a1)) {
  392. /*[IRF3.4opcode_i2d*/r256opcode(((T256*)(oBC364code_attribute)),135,1);
  393. /*]*/
  394. R=2;
  395. }
  396. else {
  397. R=1;
  398. }
  399. /*FI*/return R;
  400. }
  401. /*No:TYPE_INTEGER.expanded_initializer*/
  402. /*No:TYPE_INTEGER.jvm_if_x_ne*/
  403. /*No:TYPE_INTEGER.fz_dot*/
  404. /*No:TYPE_INTEGER.is_generic*/
  405. /*No:TYPE_INTEGER.jvm_write_local*/
  406. void r788jvm_initialize_local(int a1){
  407. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  408. /*]*/
  409. /*[IRF3.6jvm_write_local*/{int b1=a1;
  410. r256opcode_istore(((T256*)(oBC364code_attribute)),b1);
  411. }/*]*/
  412. }
  413. int fBC788used_as_reference=0;
  414. void r788used_as_reference(void){
  415. if (fBC788used_as_reference==0){
  416. fBC788used_as_reference=1;
  417. r788load_ref(((T0*)ms16_473));
  418. }}
  419. /*No:TYPE_INTEGER.is_reference*/
  420. void r788error(T0* a1,T0* a2){
  421. r683add_position(a1);
  422. r683error(((T683*)(oBC364eh)),a2);
  423. }
  424. T0* r788base_class(T788* C){
  425. T0* R=NULL;
  426. T0* _bcn=NULL;
  427. _bcn=(((T788*)C))->_base_class_name/*4*/;
  428. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  429. R=r451base_class(((T451*)_bcn));
  430. }
  431. else {
  432. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  433. r7append(((T7*)(oBC683explanation)),b1);
  434. }/*]*/
  435. r683add_type((T0*)C,((T0*)ms67_470));
  436. r683print_as_fatal_error(((T683*)(oBC364eh)));
  437. }
  438. /*FI*/return R;
  439. }
  440. /*No:TYPE_INTEGER.jvm_xastore*/
  441. /*No:TYPE_INTEGER.is_any*/
  442. /*No:TYPE_INTEGER.jvm_method_flags*/
  443. /*No:TYPE_INTEGER.base_class_name*/
  444. /*No:TYPE_INTEGER.jvm_push_local*/
  445. /*No:TYPE_INTEGER.is_expanded*/
  446. /*No:TYPE_INTEGER.is_basic_eiffel_expanded*/
  447. /*No:TYPE_INTEGER.is_none*/
  448. /*No:TYPE_INTEGER.is_integer*/
  449. /*No:PROC_CALL_1.arguments*/
  450. T0* r317add_comment(T317* C,T0* a1){
  451. T0* R=NULL;
  452. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  453. R=(T0*)C;
  454. }
  455. /*AF*/else {
  456. {T46*n=malloc(sizeof(*n));
  457. *n=M46;
  458. r46make(n,(T0*)C,a1);
  459. R=(T0*)n;
  460. }
  461. }
  462. /*FI*/return R;
  463. }
  464. void r317make(T317* C,T0* a1,T0* a2,T0* a3){
  465. C->_target=a1;
  466. C->_feature_name=a2;
  467. C->_arguments=a3;
  468. }
  469. /*No:PROC_CALL_1.nb_errors*/
  470. /*No:PROC_CALL_1.feature_name*/
  471. /*No:PROC_CALL_1.arg_count*/
  472. /*No:PROC_CALL_1.run_feature*/
  473. /*No:PROC_CALL_1.set_run_compound*/
  474. T0* r317start_position(T317* C){
  475. T0* R=NULL;
  476. R=X776start_position((((T317*)C))->_feature_name/*12*/);
  477. return R;
  478. }
  479. /*No:PROC_CALL_1.target*/
  480. /*No:PROC_CALL_1.set_run_feature*/
  481. T0* r317to_runnable(T317* C,T0* a1){
  482. T0* R=NULL;
  483. T0* _a=NULL;
  484. /*IF*/if (((((T317*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  485. r317to_runnable_0(C,a1);
  486. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  487. _a=r431to_runnable(((T431*)((((T317*)C))->_arguments/*20*/)),r317current_type(C));
  488. /*IF*/if ((_a)==((void*)(NULL))) {
  489. r317error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T317*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  490. }
  491. else {
  492. C->_arguments=_a;
  493. }
  494. /*FI*/}
  495. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  496. r431match_with(((T431*)((((T317*)C))->_arguments/*20*/)),(((T317*)C))->_run_feature/*16*/);
  497. }
  498. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  499. R=(T0*)C;
  500. }
  501. /*FI*/}
  502. else {
  503. {T317*n=malloc(sizeof(*n));
  504. *n=M317;
  505. r317make(n,(((T317*)C))->_target/*8*/,(((T317*)C))->_feature_name/*12*/,(((T317*)C))->_arguments/*20*/);
  506. R=(T0*)n;
  507. }
  508. R=r317to_runnable(((T317*)R),a1);
  509. }
  510. /*FI*/return R;
  511. }
  512. /*No:PROC_CALL_1.us_c_inline_c*/
  513. int r317standard_use_current(T317* C){
  514. int R=0;
  515. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T317*)C))->_arguments/*20*/)));
  516. }
  517. /*FI*//*IF*/if (R) {
  518. }
  519.  else if (X662is_current((((T317*)C))->_target/*8*/)) {
  520. R=X496use_current((((T317*)C))->_run_feature/*16*/);
  521. }
  522. else {
  523. R=X662use_current((((T317*)C))->_target/*8*/);
  524. }
  525. /*FI*/return R;
  526. }
  527. /*No:PROC_CALL_1.fz_07*/
  528. T0* r317current_type(T317* C){
  529. T0* R=NULL;
  530. /*IF*/if (((((T317*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  531. R=(((T592*)((T592*)((((T317*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  532. }
  533. /*FI*/return R;
  534. }
  535. /*No:PROC_CALL_1.run_compound*/
  536. void r317compile_to_jvm(T317* C){
  537. /*IF*/if ((((T0*)ms65_473))==((void*)(X776to_string((((T317*)C))->_feature_name/*12*/)))) {
  538. r683add_position(r317start_position(C));
  539. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_317);
  540. r683fatal_error(((T683*)(oBC364eh)),b1);
  541. }/*]*/
  542. }
  543. else {
  544. /*[IRF3.6call_proc_call_c2jvm*/{T317* C1=C;
  545. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  546. }/*]*/
  547. }
  548. /*FI*/}
  549. void r317to_runnable_0(T317* C,T0* a1){
  550. C->_run_compound=a1;
  551. r317cpc_to_runnable(C,r317current_type(C));
  552. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T317*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  553. r683add_position(X496start_position((((T317*)C))->_run_feature/*16*/));
  554. r317error(X776start_position((((T317*)C))->_feature_name/*12*/),((T0*)ms1_173));
  555. }
  556. /*FI*/}
  557. /*No:PROC_CALL_1.is_pre_computable*/
  558. int r317use_current(T317* C){
  559. int R=0;
  560. T0* _s=NULL;
  561. T0* _ms=NULL;
  562. /*IF*/if ((((T0*)ms65_473))==((void*)(X776to_string((((T317*)C))->_feature_name/*12*/)))) {
  563. _ms=/*(IRF4.6arg1*/r431first(((T431*)((((T317*)C))->_arguments/*20*/)))/*)*/;
  564. if(NULL!=(_ms))switch(((T0*)_ms)->id) {
  565. case 805: 
  566. break;
  567. default:
  568. _ms=NULL;
  569. };_s=(((T805*)((T805*)_ms)))->_to_string/*16*/;
  570. R=r7has(((T7*)_s),'C');
  571. }
  572. else {
  573. R=r317standard_use_current(C);
  574. }
  575. /*FI*/return R;
  576. }
  577. void r317cpc_to_runnable(T317* C,T0* a1){
  578. T0* _rc=NULL;
  579. T0* _t=NULL;
  580. _t=X662to_runnable((((T317*)C))->_target/*8*/,a1);
  581. /*IF*/if ((_t)==((void*)(NULL))) {
  582. r683add_position(X662start_position((((T317*)C))->_target/*8*/));
  583. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  584. r683fatal_error(((T683*)(oBC364eh)),b1);
  585. }/*]*/
  586. }
  587. /*FI*/C->_target=_t;
  588. _rc=X291run_class(X662result_type((((T317*)C))->_target/*8*/));
  589. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  590. r576update((((T317*)C))->_target/*8*/,(((T317*)C))->_run_feature/*16*/);
  591. }
  592. void r317error(T0* a1,T0* a2){
  593. r683add_position(a1);
  594. r683error(((T683*)(oBC364eh)),a2);
  595. }
  596. /*No:PROC_CALL_1.fatal_error*/
  597. /*No:PROC_CALL_1.fz_bad_argument*/
  598. /*No:PROC_CALL_1.arg1*/
  599. /*No:PROC_CALL_1.end_mark_comment*/
  600. /*No:PROC_CALL_1.call_proc_call_c2jvm*/
  601. void r317afd_check(T317* C){
  602. T0* _running=NULL;
  603. T0* _rc=NULL;
  604. _rc=X291run_class(X662result_type((((T317*)C))->_target/*8*/));
  605. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  606. /*IF*/if ((_running)==((void*)(NULL))) {
  607. r683add_position(X662start_position((((T317*)C))->_target/*8*/));
  608. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  609. r7append(((T7*)(oBC683explanation)),b1);
  610. }/*]*/
  611. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  612. r7append(((T7*)(oBC683explanation)),b1);
  613. }/*]*/
  614. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  615. r7append(((T7*)(oBC683explanation)),b1);
  616. }/*]*/
  617. r683print_as_warning(((T683*)(oBC364eh)));
  618. r355set_at_run_time(((T355*)_rc));
  619. }
  620.  else if ((r396count(((T396*)_running)))>(0)) {
  621. r576update((((T317*)C))->_target/*8*/,(((T317*)C))->_run_feature/*16*/);
  622. }
  623. /*FI*/X662afd_check((((T317*)C))->_target/*8*/);
  624. /*IF*/{/*AT*/r431afd_check(((T431*)((((T317*)C))->_arguments/*20*/)));
  625. }
  626. /*FI*/}
  627. T0* r317make_runnable(T317* C,T0* a1,T0* a2,T0* a3,T0* a4){
  628. T0* R=NULL;
  629. /*IF*/if (((((T317*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  630. R=(T0*)C;
  631. r317make(((T317*)R),a2,(((T317*)C))->_feature_name/*12*/,a3);
  632. C->_run_compound=a1;
  633. C->_run_feature=a4;
  634. }
  635. else {
  636. {T317*n=malloc(sizeof(*n));
  637. *n=M317;
  638. r317make(n,a2,(((T317*)C))->_feature_name/*12*/,a3);
  639. R=(T0*)n;
  640. }
  641. /*[IRF3.3set_run_compound*/((((T317*)(((T317*)R))))->_run_compound)=(a1);
  642. /*]*/
  643. /*[IRF3.3set_run_feature*/((((T317*)(((T317*)R))))->_run_feature)=(a4);
  644. /*]*/
  645. }
  646. /*FI*/return R;
  647. }
  648. T0* r23add_comment(T23* C,T0* a1){
  649. T0* R=NULL;
  650. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  651. R=(T0*)C;
  652. }
  653. else {
  654. {T529*n=malloc(sizeof(*n));
  655. *n=M529;
  656. r529make(n,(T0*)C,a1);
  657. R=(T0*)n;
  658. }
  659. }
  660. /*FI*/return R;
  661. }
  662. int r23to_integer(T23* C){
  663. int R=0;
  664. r23error((((T23*)C))->_start_position/*16*/,((T0*)ms69_470));
  665. return R;
  666. }
  667. int r23is_a(T23* C,T0* a1){
  668. int R=0;
  669. R=X291is_a(X291run_type((((T23*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  670. /*IF*/if (!(R)) {
  671. r683add_position((((T23*)C))->_start_position/*16*/);
  672. r23error(X662start_position(a1),((T0*)ms4_662));
  673. }
  674. /*FI*/return R;
  675. }
  676. /*No:LOCAL_NAME2.is_current*/
  677. int r23jvm_branch_if_false(T23* C){
  678. int R=0;
  679. r23compile_to_jvm(C);
  680. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  681. return R;
  682. }
  683. /*No:LOCAL_NAME2.static_value*/
  684. /*No:LOCAL_NAME2.to_string*/
  685. void r23compile_to_jvm_assignment(T23* C,T0* a1){
  686. int _jvm_offset=0;
  687. int _space=0;
  688. _jvm_offset=r228local_offset_of(((T228*)(oBC364jvm)),(T0*)C);
  689. _space=X662compile_to_jvm_into((((T629*)((T629*)a1)))->_right_side/*12*/,X291run_type((((T23*)C))->_result_type/*24*/));
  690. X291jvm_write_local(X291run_type((((T23*)C))->_result_type/*24*/),_jvm_offset);
  691. }
  692. /*No:LOCAL_NAME2.fz_iinaiv*/
  693. int r23jvm_branch_if_true(T23* C){
  694. int R=0;
  695. r23compile_to_jvm(C);
  696. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  697. return R;
  698. }
  699. /*No:LOCAL_NAME2.set_result_type*/
  700. /*No:LOCAL_NAME2.start_position*/
  701. /*No:LOCAL_NAME2.compile_to_jvm_old*/
  702. T0* r23to_runnable(T23* C,T0* a1){
  703. T0* R=NULL;
  704. T0* _rt=NULL;
  705. T0* _declaration_name=NULL;
  706. T0* _lvl=NULL;
  707. T0* _rf=NULL;
  708. _rf=r604top_rf(((T604*)(oBC364small_eiffel)));
  709. _lvl=X496local_vars(_rf);
  710. _declaration_name=/*(IRF4.6name*/r733item(((T733*)((((T620*)((T620*)_lvl)))->_flat_list/*12*/)),(((T23*)C))->_rank/*20*/)/*)*/;
  711. /*[IRF3.3set_is_used*/((((T39*)(((T39*)_declaration_name))))->_is_used)=(1);
  712. /*]*/
  713. _rt=r620type(((T620*)_lvl),(((T23*)C))->_rank/*20*/);
  714. /*IF*/if (((((T23*)C))->_current_type/*8*/)==((void*)(NULL))) {
  715. C->_current_type=a1;
  716. C->_result_type=_rt;
  717. R=(T0*)C;
  718. }
  719. else {
  720. {T23*n=malloc(sizeof(*n));
  721. *n=M23;
  722. r23make_runnable(n,(T0*)C,a1,_rt);
  723. R=(T0*)n;
  724. }
  725. }
  726. /*FI*/return R;
  727. }
  728. /*No:LOCAL_NAME2.set_rank*/
  729. /*No:LOCAL_NAME2.rank*/
  730. /*No:LOCAL_NAME2.result_type*/
  731. /*No:LOCAL_NAME2.is_result*/
  732. /*No:LOCAL_NAME2.is_static*/
  733. void r23standard_compile_target_to_jvm(T23* C){
  734. r23compile_to_jvm(C);
  735. X291jvm_check_class_invariant((((T23*)C))->_result_type/*24*/);
  736. }
  737. int r23compile_to_jvm_into(T23* C,T0* a1){
  738. int R=0;
  739. R=r23standard_compile_to_jvm_into(C,a1);
  740. return R;
  741. }
  742. /*No:LOCAL_NAME2.compile_target_to_jvm*/
  743. /*No:LOCAL_NAME2.can_be_dropped*/
  744. /*No:LOCAL_NAME2.current_type*/
  745. void r23jvm_assign(T23* C){
  746. int _jvm_offset=0;
  747. _jvm_offset=r228local_offset_of(((T228*)(oBC364jvm)),(T0*)C);
  748. X291jvm_write_local(X291run_type((((T23*)C))->_result_type/*24*/),_jvm_offset);
  749. }
  750. /*No:LOCAL_NAME2.static_value_mem*/
  751. /*No:LOCAL_NAME2.is_manifest_string*/
  752. void r23refer_to(T23* C,T0* a1,T0* a2,int a3){
  753. T0* _declaration_name=NULL;
  754. C->_start_position=a1;
  755. C->_rank=a3;
  756. _declaration_name=/*(IRF4.6name*/r733item(((T733*)((((T620*)((T620*)a2)))->_flat_list/*12*/)),a3)/*)*/;
  757. C->_to_string=(((T39*)((T39*)_declaration_name)))->_to_string/*12*/;
  758. C->_result_type=(((T39*)((T39*)_declaration_name)))->_result_type/*24*/;
  759. }
  760. /*No:LOCAL_NAME2.is_void*/
  761. void r23compile_to_jvm(T23* C){
  762. int _jvm_offset=0;
  763. _jvm_offset=r228local_offset_of(((T228*)(oBC364jvm)),(T0*)C);
  764. X291jvm_push_local(X291run_type((((T23*)C))->_result_type/*24*/),_jvm_offset);
  765. }
  766. /*No:LOCAL_NAME2.is_pre_computable*/
  767. /*No:LOCAL_NAME2.use_current*/
  768. void r23error(T0* a1,T0* a2){
  769. r683add_position(a1);
  770. r683error(((T683*)(oBC364eh)),a2);
  771. }
  772. /*No:LOCAL_NAME2.isa_dca_inline_argument*/
  773. int r23standard_compile_to_jvm_into(T23* C,T0* a1){
  774. int R=0;
  775. r23compile_to_jvm(C);
  776. R=X291jvm_convert_to(X291run_type((((T23*)C))->_result_type/*24*/),a1);
  777. return R;
  778. }
  779. /*No:LOCAL_NAME2.afd_check*/
  780. void r23make_runnable(T23* C,T0* a1,T0* a2,T0* a3){
  781. *((T23*)(C))=*((T23*)(a1));
  782. C->_current_type=a2;
  783. C->_result_type=a3;
  784. }
  785. /*No:CALL_0_C.arguments*/
  786. T0* r487add_comment(T487* C,T0* a1){
  787. T0* R=NULL;
  788. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  789. R=(T0*)C;
  790. }
  791. else {
  792. {T529*n=malloc(sizeof(*n));
  793. *n=M529;
  794. r529make(n,(T0*)C,a1);
  795. R=(T0*)n;
  796. }
  797. }
  798. /*FI*/return R;
  799. }
  800. int r487to_integer(T487* C){
  801. int R=0;
  802. T0* _rf1=NULL;
  803. _rf1=(((T487*)C))->_run_feature/*20*/;
  804. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  805. case 808: 
  806. break;
  807. default:
  808. _rf1=NULL;
  809. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  810. r487error(r487start_position(C),((T0*)ms69_470));
  811. }
  812. else {
  813. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/);
  814. }
  815. /*FI*/return R;
  816. }
  817. int r487is_a(T487* C,T0* a1){
  818. int R=0;
  819. R=X291is_a(X291run_type((((T487*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  820. /*IF*/if (!(R)) {
  821. r683add_position(r487start_position(C));
  822. r487error(X662start_position(a1),((T0*)ms4_662));
  823. }
  824. /*FI*/return R;
  825. }
  826. /*No:CALL_0_C.is_current*/
  827. /*No:CALL_0_C.jvm_branch_if_false*/
  828. /*No:CALL_0_C.static_value*/
  829. void r487make(T487* C,T0* a1,T0* a2){
  830. C->_target=a1;
  831. C->_feature_name=a2;
  832. }
  833. /*No:CALL_0_C.nb_errors*/
  834. /*No:CALL_0_C.feature_name*/
  835. /*No:CALL_0_C.compile_to_jvm_assignment*/
  836. /*No:CALL_0_C.fz_iinaiv*/
  837. /*No:CALL_0_C.arg_count*/
  838. /*No:CALL_0_C.jvm_branch_if_true*/
  839. /*No:CALL_0_C.run_feature*/
  840. T0* r487start_position(T487* C){
  841. T0* R=NULL;
  842. R=X776start_position((((T487*)C))->_feature_name/*16*/);
  843. return R;
  844. }
  845. void r487compile_to_jvm_old(T487* C){
  846. X662compile_to_jvm_old((((T487*)C))->_target/*12*/);
  847. /*IF*//*AF*//*AE*/
  848. /*FI*/}
  849. /*No:CALL_0_C.target*/
  850. /*No:CALL_0_C.us_is_expanded_type*/
  851. T0* r487to_runnable(T487* C,T0* a1){
  852. T0* R=NULL;
  853. /*IF*/if (((((T487*)C))->_current_type/*8*/)==((void*)(NULL))) {
  854. r487to_runnable_0(C,a1);
  855. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T487*)C))->_run_feature/*20*/))>(0))) {
  856. r683add_position(X776start_position((((T487*)C))->_feature_name/*16*/));
  857. r487error(X496start_position((((T487*)C))->_run_feature/*20*/),((T0*)ms1_752));
  858. }
  859. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  860. R=(T0*)C;
  861. }
  862. /*FI*/}
  863. else {
  864. R=r487twin(C);
  865. /*[IRF3.3set_current_type*/((((T487*)(((T487*)R))))->_current_type)=(NULL);
  866. /*]*/
  867. R=r487to_runnable(((T487*)R),a1);
  868. }
  869. /*FI*/return R;
  870. }
  871. /*No:CALL_0_C.result_type*/
  872. /*No:CALL_0_C.is_result*/
  873. T0* r487twin(T487* C){
  874. T0* R=NULL;
  875. R=malloc(sizeof(*C));
  876. *((T487*)R)=*C;
  877. return R;
  878. }
  879. /*No:CALL_0_C.set_current_type*/
  880. int r487is_static(T487* C){
  881. int R=0;
  882. T0* _tb=NULL;
  883. T0* _tt=NULL;
  884. T0* _name=NULL;
  885. /*IF*/if (((((T487*)C))->_run_feature/*20*/)!=((void*)(NULL))) {
  886. _tt=X662result_type((((T487*)C))->_target/*12*/);
  887. _name=X776to_string(/*X496*/((T0*)(((T832*)((T832*)((((T487*)C))->_run_feature/*20*/))))->_name/*16*/));
  888. /*IF*/if ((((T0*)ms83_473))==((void*)(_name))) {
  889. R=1;
  890. /*IF*/if (X291is_expanded(_tt)) {
  891. C->_static_value_mem=1;
  892. }
  893. /*FI*/}
  894.  else if ((((T0*)ms82_473))==((void*)(_name))) {
  895. R=1;
  896. /*IF*/if (X291is_basic_eiffel_expanded(_tt)) {
  897. C->_static_value_mem=1;
  898. }
  899. /*FI*/}
  900.  else if (((((T0*)ms60_473))==((void*)(_name)))&&(X291is_bit(_tt))) {
  901. R=1;
  902. _tb=_tt;
  903. if(NULL!=(_tb))switch(((T0*)_tb)->id) {
  904. case 549: case 558: 
  905. break;
  906. default:
  907. _tb=NULL;
  908. };C->_static_value_mem=X609nb(_tb);
  909. }
  910.  else if (X662is_current((((T487*)C))->_target/*12*/)) {
  911. /*IF*/if (X496is_static((((T487*)C))->_run_feature/*20*/)) {
  912. R=1;
  913. C->_static_value_mem=X496static_value_mem((((T487*)C))->_run_feature/*20*/);
  914. }
  915. else {
  916. R=r487call_is_static(C);
  917. }
  918. /*FI*/}
  919. else {
  920. R=r487call_is_static(C);
  921. }
  922. /*FI*/}
  923. /*FI*/return R;
  924. }
  925. void r487standard_compile_target_to_jvm(T487* C){
  926. r487compile_to_jvm(C);
  927. X291jvm_check_class_invariant((((T487*)C))->_result_type/*24*/);
  928. }
  929. int r487compile_to_jvm_into(T487* C,T0* a1){
  930. int R=0;
  931. R=r487standard_compile_to_jvm_into(C,a1);
  932. return R;
  933. }
  934. /*No:CALL_0_C.compile_target_to_jvm*/
  935. int r487call_is_static(T487* C){
  936. int R=0;
  937. T0* _rf=NULL;
  938. T0* _running=NULL;
  939. T0* _rc=NULL;
  940. /*IF*/if (((((T487*)C))->_run_feature/*20*/)!=((void*)(NULL))) {
  941. _rc=X496run_class((((T487*)C))->_run_feature/*20*/);
  942. /*IF*/if ((_rc)!=((void*)(NULL))) {
  943. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  944. /*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))==(1))) {
  945. _rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),(((T487*)C))->_run_feature/*20*/);
  946. /*IF*/if (X496is_static(_rf)) {
  947. C->_static_value_mem=X496static_value_mem(_rf);
  948. R=1;
  949. }
  950. /*FI*/}
  951. /*FI*/}
  952. /*FI*/}
  953. /*FI*/return R;
  954. }
  955. /*No:CALL_0_C.fz_07*/
  956. /*No:CALL_0_C.us_is_basic_expanded_type*/
  957. int r487can_be_dropped(T487* C){
  958. int R=0;
  959. /*IF*/if (X662can_be_dropped((((T487*)C))->_target/*12*/)) {
  960. R=X496can_be_dropped((((T487*)C))->_run_feature/*20*/);
  961. }
  962. /*FI*/return R;
  963. }
  964. /*No:CALL_0_C.us_count*/
  965. /*No:CALL_0_C.current_type*/
  966. /*No:CALL_0_C.jvm_assign*/
  967. /*No:CALL_0_C.static_value_mem*/
  968. /*No:CALL_0_C.is_manifest_string*/
  969. /*No:CALL_0_C.is_void*/
  970. int r487jvm_standard_branch_if_false(T487* C){
  971. int R=0;
  972. r487compile_to_jvm(C);
  973. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  974. return R;
  975. }
  976. void r487compile_to_jvm(T487* C){
  977. T0* _n=NULL;
  978. _n=X776to_string((((T487*)C))->_feature_name/*16*/);
  979. /*IF*/if ((((T0*)ms83_473))==((void*)(_n))) {
  980. /*IF*/if (X291is_expanded(X662result_type((((T487*)C))->_target/*12*/))) {
  981. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
  982. /*]*/
  983. }
  984. else {
  985. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  986. /*]*/
  987. }
  988. /*FI*/}
  989.  else if ((((T0*)ms82_473))==((void*)(_n))) {
  990. /*IF*/if (X291is_basic_eiffel_expanded(X662result_type((((T487*)C))->_target/*12*/))) {
  991. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
  992. /*]*/
  993. }
  994. else {
  995. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  996. /*]*/
  997. }
  998. /*FI*/}
  999. else {
  1000. /*[IRF3.6call_proc_call_c2jvm*/{T487* C1=C;
  1001. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1002. }/*]*/
  1003. }
  1004. /*FI*/}
  1005. void r487to_runnable_0(T487* C,T0* a1){
  1006. C->_current_type=a1;
  1007. r487cpc_to_runnable(C,a1);
  1008. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T487*)C))->_run_feature/*20*/))))->_result_type/*24*/);
  1009. /*IF*/if (((((T487*)C))->_result_type/*24*/)==((void*)(NULL))) {
  1010. r683add_position(X496start_position((((T487*)C))->_run_feature/*20*/));
  1011. r487error(X776start_position((((T487*)C))->_feature_name/*16*/),((T0*)ms1_295));
  1012. }
  1013.  else if (X291is_like_current((((T487*)C))->_result_type/*24*/)) {
  1014. C->_result_type=X662result_type((((T487*)C))->_target/*12*/);
  1015. }
  1016. /*FI*/}
  1017. int r487is_pre_computable(T487* C){
  1018. int R=0;
  1019. /*IF*/if (X662is_current((((T487*)C))->_target/*12*/)) {
  1020. R=X496is_pre_computable((((T487*)C))->_run_feature/*20*/);
  1021. }
  1022. /*FI*/return R;
  1023. }
  1024. int r487jvm_standard_branch_if_true(T487* C){
  1025. int R=0;
  1026. r487compile_to_jvm(C);
  1027. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1028. return R;
  1029. }
  1030. int r487use_current(T487* C){
  1031. int R=0;
  1032. /*IF*//*AF*//*AE*/
  1033. /*FI*//*IF*/if (R) {
  1034. }
  1035.  else if (X662is_current((((T487*)C))->_target/*12*/)) {
  1036. R=X496use_current((((T487*)C))->_run_feature/*20*/);
  1037. }
  1038. else {
  1039. R=X662use_current((((T487*)C))->_target/*12*/);
  1040. }
  1041. /*FI*/return R;
  1042. }
  1043. void r487cpc_to_runnable(T487* C,T0* a1){
  1044. T0* _rc=NULL;
  1045. T0* _t=NULL;
  1046. _t=X662to_runnable((((T487*)C))->_target/*12*/,a1);
  1047. /*IF*/if ((_t)==((void*)(NULL))) {
  1048. r683add_position(X662start_position((((T487*)C))->_target/*12*/));
  1049. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1050. r683fatal_error(((T683*)(oBC364eh)),b1);
  1051. }/*]*/
  1052. }
  1053. /*FI*/C->_target=_t;
  1054. _rc=X291run_class(X662result_type((((T487*)C))->_target/*12*/));
  1055. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1056. r576update((((T487*)C))->_target/*12*/,(((T487*)C))->_run_feature/*20*/);
  1057. }
  1058. void r487error(T0* a1,T0* a2){
  1059. r683add_position(a1);
  1060. r683error(((T683*)(oBC364eh)),a2);
  1061. }
  1062. /*No:CALL_0_C.isa_dca_inline_argument*/
  1063. /*No:CALL_0_C.fatal_error*/
  1064. int r487standard_compile_to_jvm_into(T487* C,T0* a1){
  1065. int R=0;
  1066. r487compile_to_jvm(C);
  1067. R=X291jvm_convert_to(X291run_type((((T487*)C))->_result_type/*24*/),a1);
  1068. return R;
  1069. }
  1070. /*No:CALL_0_C.call_proc_call_c2jvm*/
  1071. void r487afd_check(T487* C){
  1072. T0* _running=NULL;
  1073. T0* _rc=NULL;
  1074. _rc=X291run_class(X662result_type((((T487*)C))->_target/*12*/));
  1075. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1076. /*IF*/if ((_running)==((void*)(NULL))) {
  1077. r683add_position(X662start_position((((T487*)C))->_target/*12*/));
  1078. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1079. r7append(((T7*)(oBC683explanation)),b1);
  1080. }/*]*/
  1081. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1082. r7append(((T7*)(oBC683explanation)),b1);
  1083. }/*]*/
  1084. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1085. r7append(((T7*)(oBC683explanation)),b1);
  1086. }/*]*/
  1087. r683print_as_warning(((T683*)(oBC364eh)));
  1088. r355set_at_run_time(((T355*)_rc));
  1089. }
  1090.  else if ((r396count(((T396*)_running)))>(0)) {
  1091. r576update((((T487*)C))->_target/*12*/,(((T487*)C))->_run_feature/*20*/);
  1092. }
  1093. /*FI*/X662afd_check((((T487*)C))->_target/*12*/);
  1094. /*IF*//*AF*//*AE*/
  1095. /*FI*/}
  1096. void r583make(T583* C,T0* a1,T0* a2,T0* a3,T0* a4){
  1097. C->_start_position=a1;
  1098. C->_clients=a2;
  1099. C->_comment=a3;
  1100. /*IF*/if ((a4)!=((void*)(NULL))) {
  1101. {T953*n=malloc(sizeof(*n));
  1102. *n=M953;
  1103. r953make(n,a4);
  1104. C->_procedure_list=(T0*)n;
  1105. }
  1106. }
  1107. /*FI*/}
  1108. /*No:CREATION_CLAUSE.start_position*/
  1109. void r583check_expanded_with(T583* C,T0* a1){
  1110. T0* _rc=NULL;
  1111. T0* _rf3=NULL;
  1112. T0* _rf=NULL;
  1113. /*IF*/if (((((T583*)C))->_procedure_list/*12*/)==((void*)(NULL))) {
  1114. r683add_position((((T583*)C))->_start_position/*0*/);
  1115. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms6_583);
  1116. r683fatal_error(((T683*)(oBC364eh)),b1);
  1117. }/*]*/
  1118. }
  1119. /*FI*//*IF*/if ((/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T583*)C))->_procedure_list/*12*/))))->_list/*0*/))))->_upper/*8*//*)*/)>(1)) {
  1120. r683add_type(a1,((T0*)ms65_470));
  1121. r683add_position((((T583*)C))->_start_position/*0*/);
  1122. /*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_364);
  1123. r683fatal_error(((T683*)(oBC364eh)),b1);
  1124. }/*]*/
  1125. /*]*/
  1126. }
  1127. /*FI*/_rc=X291run_class(a1);
  1128. _rf=r355get_feature(((T355*)_rc),/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T583*)C))->_procedure_list/*12*/))))->_list/*0*/)),1)/*)*/);
  1129. /*IF*/if ((_rf)==((void*)(NULL))) {
  1130. r683add_position((((T583*)C))->_start_position/*0*/);
  1131. /*[IRF3.6append*/{T0* b1=((T0*)ms7_583);
  1132. r7append(((T7*)(oBC683explanation)),b1);
  1133. }/*]*/
  1134. r683add_type(a1,((T0*)ms8_583));
  1135. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1136. }
  1137. /*FI*/_rf3=_rf;
  1138. if(NULL!=(_rf3))switch(((T0*)_rf3)->id) {
  1139. case 832: 
  1140. break;
  1141. default:
  1142. _rf3=NULL;
  1143. };/*IF*/if ((_rf3)==((void*)(NULL))) {
  1144. r683add_position((((T583*)C))->_start_position/*0*/);
  1145. r683add_position(X496start_position(_rf));
  1146. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_583);
  1147. r683fatal_error(((T683*)(oBC364eh)),b1);
  1148. }/*]*/
  1149. }
  1150. /*FI*//*IF*/if ((r832arg_count(((T832*)_rf3)))>(0)) {
  1151. r683add_type(a1,((T0*)ms65_470));
  1152. r683add_position((((T583*)C))->_start_position/*0*/);
  1153. r683add_position(/*(IRF4.6start_position*/r297start_position(((T297*)((((T832*)((T832*)_rf3)))->_base_feature/*44*/)))/*)*/);
  1154. /*[IRF3.6append*/{T0* b1=((T0*)ms10_583);
  1155. r7append(((T7*)(oBC683explanation)),b1);
  1156. }/*]*/
  1157. /*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_364);
  1158. r683fatal_error(((T683*)(oBC364eh)),b1);
  1159. }/*]*/
  1160. /*]*/
  1161. }
  1162. /*FI*/}
  1163. /*No:CREATION_CLAUSE.comment*/
  1164. int r583has(T583* C,T0* a1){
  1165. int R=0;
  1166. /*IF*/if (((((T583*)C))->_procedure_list/*12*/)!=((void*)(NULL))) {
  1167. R=r953has(((T953*)((((T583*)C))->_procedure_list/*12*/)),a1);
  1168. }
  1169. /*FI*/return R;
  1170. }
  1171. T0* r583expanded_initializer(T583* C,T0* a1){
  1172. T0* R=NULL;
  1173. /*IF*/if (((((T583*)C))->_procedure_list/*12*/)!=((void*)(NULL))) {
  1174. R=r355get_feature(((T355*)(X291run_class(a1))),/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T583*)C))->_procedure_list/*12*/))))->_list/*0*/)),1)/*)*/);
  1175. if(NULL!=(R))switch(((T0*)R)->id) {
  1176. case 832: 
  1177. break;
  1178. default:
  1179. R=NULL;
  1180. };}
  1181. /*FI*/return R;
  1182. }
  1183. /*No:CREATION_CLAUSE.fz_cbe*/
  1184. /*No:CREATION_CLAUSE.clients*/
  1185. /*No:CREATION_CLAUSE.fatal_error_vtec_2*/
  1186. /*No:CREATION_CLAUSE.fatal_error*/
  1187. /*No:CREATION_CLAUSE.procedure_list*/
  1188. void r490make(T490* C,T0* a1,T0* a2){
  1189. C->_to_string=r902item(a1);
  1190. C->_start_position=a2;
  1191. }
  1192. /*No:TAG_NAME.to_string*/
  1193. /*No:TAG_NAME.start_position*/
  1194. /*No:CALL_1_C.arguments*/
  1195. T0* r492add_comment(T492* C,T0* a1){
  1196. T0* R=NULL;
  1197. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1198. R=(T0*)C;
  1199. }
  1200. else {
  1201. {T529*n=malloc(sizeof(*n));
  1202. *n=M529;
  1203. r529make(n,(T0*)C,a1);
  1204. R=(T0*)n;
  1205. }
  1206. }
  1207. /*FI*/return R;
  1208. }
  1209. int r492to_integer(T492* C){
  1210. int R=0;
  1211. r492error(r492start_position(C),((T0*)ms69_470));
  1212. return R;
  1213. }
  1214. int r492is_a(T492* C,T0* a1){
  1215. int R=0;
  1216. R=X291is_a(X291run_type((((T492*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  1217. /*IF*/if (!(R)) {
  1218. r683add_position(r492start_position(C));
  1219. r492error(X662start_position(a1),((T0*)ms4_662));
  1220. }
  1221. /*FI*/return R;
  1222. }
  1223. /*No:CALL_1_C.is_current*/
  1224. /*No:CALL_1_C.jvm_branch_if_false*/
  1225. /*No:CALL_1_C.static_value*/
  1226. void r492make(T492* C,T0* a1,T0* a2,T0* a3){
  1227. C->_target=a1;
  1228. C->_feature_name=a2;
  1229. C->_arguments=a3;
  1230. }
  1231. /*No:CALL_1_C.nb_errors*/
  1232. /*No:CALL_1_C.feature_name*/
  1233. /*No:CALL_1_C.compile_to_jvm_assignment*/
  1234. /*No:CALL_1_C.fz_iinaiv*/
  1235. /*No:CALL_1_C.arg_count*/
  1236. /*No:CALL_1_C.jvm_branch_if_true*/
  1237. /*No:CALL_1_C.run_feature*/
  1238. T0* r492start_position(T492* C){
  1239. T0* R=NULL;
  1240. R=X776start_position((((T492*)C))->_feature_name/*16*/);
  1241. return R;
  1242. }
  1243. void r492compile_to_jvm_old(T492* C){
  1244. X662compile_to_jvm_old((((T492*)C))->_target/*12*/);
  1245. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T492*)C))->_arguments/*28*/)));
  1246. }
  1247. /*FI*/}
  1248. /*No:CALL_1_C.target*/
  1249. T0* r492to_runnable(T492* C,T0* a1){
  1250. T0* R=NULL;
  1251. T0* _tla=NULL;
  1252. T0* _a=NULL;
  1253. /*IF*/if (((((T492*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1254. r492to_runnable_0(C,a1);
  1255. _a=r431to_runnable(((T431*)((((T492*)C))->_arguments/*28*/)),a1);
  1256. /*IF*/if ((_a)==((void*)(NULL))) {
  1257. r492error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T492*)C))->_arguments/*28*/)))/*)*/),((T0*)ms55_470));
  1258. }
  1259. else {
  1260. C->_arguments=_a;
  1261. }
  1262. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1263. r431match_with(((T431*)((((T492*)C))->_arguments/*28*/)),(((T492*)C))->_run_feature/*20*/);
  1264. }
  1265. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1266. _tla=(((T492*)C))->_result_type/*24*/;
  1267. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1268. case 239: 
  1269. break;
  1270. default:
  1271. _tla=NULL;
  1272. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1273. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T492*)C))->_arguments/*28*/)))/*)*/));
  1274. }
  1275. /*FI*/}
  1276. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1277. R=(T0*)C;
  1278. }
  1279. /*FI*/}
  1280. else {
  1281. R=r492twin(C);
  1282. /*[IRF3.3set_current_type*/((((T492*)(((T492*)R))))->_current_type)=(NULL);
  1283. /*]*/
  1284. R=r492to_runnable(((T492*)R),a1);
  1285. }
  1286. /*FI*/return R;
  1287. }
  1288. /*No:CALL_1_C.result_type*/
  1289. /*No:CALL_1_C.is_result*/
  1290. T0* r492twin(T492* C){
  1291. T0* R=NULL;
  1292. R=malloc(sizeof(*C));
  1293. *((T492*)R)=*C;
  1294. return R;
  1295. }
  1296. /*No:CALL_1_C.set_current_type*/
  1297. /*No:CALL_1_C.is_static*/
  1298. void r492standard_compile_target_to_jvm(T492* C){
  1299. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T492* C1=C;
  1300. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1301. }/*]*/
  1302. /*]*/
  1303. X291jvm_check_class_invariant((((T492*)C))->_result_type/*24*/);
  1304. }
  1305. int r492compile_to_jvm_into(T492* C,T0* a1){
  1306. int R=0;
  1307. R=r492standard_compile_to_jvm_into(C,a1);
  1308. return R;
  1309. }
  1310. /*No:CALL_1_C.compile_target_to_jvm*/
  1311. int r492call_is_static(T492* C){
  1312. int R=0;
  1313. T0* _rf=NULL;
  1314. T0* _running=NULL;
  1315. T0* _rc=NULL;
  1316. /*IF*/if (((((T492*)C))->_run_feature/*20*/)!=((void*)(NULL))) {
  1317. _rc=X496run_class((((T492*)C))->_run_feature/*20*/);
  1318. /*IF*/if ((_rc)!=((void*)(NULL))) {
  1319. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1320. /*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))==(1))) {
  1321. _rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),(((T492*)C))->_run_feature/*20*/);
  1322. /*IF*/if (X496is_static(_rf)) {
  1323. C->_static_value_mem=X496static_value_mem(_rf);
  1324. R=1;
  1325. }
  1326. /*FI*/}
  1327. /*FI*/}
  1328. /*FI*/}
  1329. /*FI*/return R;
  1330. }
  1331. /*No:CALL_1_C.fz_07*/
  1332. /*No:CALL_1_C.can_be_dropped*/
  1333. /*No:CALL_1_C.current_type*/
  1334. /*No:CALL_1_C.jvm_assign*/
  1335. /*No:CALL_1_C.static_value_mem*/
  1336. /*No:CALL_1_C.is_manifest_string*/
  1337. /*No:CALL_1_C.is_void*/
  1338. int r492jvm_standard_branch_if_false(T492* C){
  1339. int R=0;
  1340. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T492* C1=C;
  1341. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1342. }/*]*/
  1343. /*]*/
  1344. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  1345. return R;
  1346. }
  1347. /*No:CALL_1_C.compile_to_jvm*/
  1348. void r492to_runnable_0(T492* C,T0* a1){
  1349. C->_current_type=a1;
  1350. r492cpc_to_runnable(C,a1);
  1351. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T492*)C))->_run_feature/*20*/))))->_result_type/*24*/);
  1352. /*IF*/if (((((T492*)C))->_result_type/*24*/)==((void*)(NULL))) {
  1353. r683add_position(X496start_position((((T492*)C))->_run_feature/*20*/));
  1354. r492error(X776start_position((((T492*)C))->_feature_name/*16*/),((T0*)ms1_295));
  1355. }
  1356.  else if (X291is_like_current((((T492*)C))->_result_type/*24*/)) {
  1357. C->_result_type=X662result_type((((T492*)C))->_target/*12*/);
  1358. }
  1359. /*FI*/}
  1360. /*No:CALL_1_C.is_pre_computable*/
  1361. int r492jvm_standard_branch_if_true(T492* C){
  1362. int R=0;
  1363. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T492* C1=C;
  1364. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1365. }/*]*/
  1366. /*]*/
  1367. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1368. return R;
  1369. }
  1370. int r492use_current(T492* C){
  1371. int R=0;
  1372. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T492*)C))->_arguments/*28*/)));
  1373. }
  1374. /*FI*//*IF*/if (R) {
  1375. }
  1376.  else if (X662is_current((((T492*)C))->_target/*12*/)) {
  1377. R=X496use_current((((T492*)C))->_run_feature/*20*/);
  1378. }
  1379. else {
  1380. R=X662use_current((((T492*)C))->_target/*12*/);
  1381. }
  1382. /*FI*/return R;
  1383. }
  1384. void r492cpc_to_runnable(T492* C,T0* a1){
  1385. T0* _rc=NULL;
  1386. T0* _t=NULL;
  1387. _t=X662to_runnable((((T492*)C))->_target/*12*/,a1);
  1388. /*IF*/if ((_t)==((void*)(NULL))) {
  1389. r683add_position(X662start_position((((T492*)C))->_target/*12*/));
  1390. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1391. r683fatal_error(((T683*)(oBC364eh)),b1);
  1392. }/*]*/
  1393. }
  1394. /*FI*/C->_target=_t;
  1395. _rc=X291run_class(X662result_type((((T492*)C))->_target/*12*/));
  1396. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1397. r576update((((T492*)C))->_target/*12*/,(((T492*)C))->_run_feature/*20*/);
  1398. }
  1399. void r492error(T0* a1,T0* a2){
  1400. r683add_position(a1);
  1401. r683error(((T683*)(oBC364eh)),a2);
  1402. }
  1403. /*No:CALL_1_C.isa_dca_inline_argument*/
  1404. /*No:CALL_1_C.fatal_error*/
  1405. /*No:CALL_1_C.fz_bad_argument*/
  1406. /*No:CALL_1_C.arg1*/
  1407. int r492standard_compile_to_jvm_into(T492* C,T0* a1){
  1408. int R=0;
  1409. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T492* C1=C;
  1410. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1411. }/*]*/
  1412. /*]*/
  1413. R=X291jvm_convert_to(X291run_type((((T492*)C))->_result_type/*24*/),a1);
  1414. return R;
  1415. }
  1416. /*No:CALL_1_C.call_proc_call_c2jvm*/
  1417. void r492afd_check(T492* C){
  1418. T0* _running=NULL;
  1419. T0* _rc=NULL;
  1420. _rc=X291run_class(X662result_type((((T492*)C))->_target/*12*/));
  1421. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1422. /*IF*/if ((_running)==((void*)(NULL))) {
  1423. r683add_position(X662start_position((((T492*)C))->_target/*12*/));
  1424. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1425. r7append(((T7*)(oBC683explanation)),b1);
  1426. }/*]*/
  1427. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1428. r7append(((T7*)(oBC683explanation)),b1);
  1429. }/*]*/
  1430. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1431. r7append(((T7*)(oBC683explanation)),b1);
  1432. }/*]*/
  1433. r683print_as_warning(((T683*)(oBC364eh)));
  1434. r355set_at_run_time(((T355*)_rc));
  1435. }
  1436.  else if ((r396count(((T396*)_running)))>(0)) {
  1437. r576update((((T492*)C))->_target/*12*/,(((T492*)C))->_run_feature/*20*/);
  1438. }
  1439. /*FI*/X662afd_check((((T492*)C))->_target/*12*/);
  1440. /*IF*/{/*AT*/r431afd_check(((T431*)((((T492*)C))->_arguments/*28*/)));
  1441. }
  1442. /*FI*/}
  1443. /*No:RUN_FEATURE_2.arguments*/
  1444. /*No:RUN_FEATURE_2.ucs_true*/
  1445. /*No:RUN_FEATURE_2.actuals_clients*/
  1446. T0* r820jvm_descriptor(T820* C){
  1447. T0* R=NULL;
  1448. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
  1449. /*]*/
  1450. r820update_tmp_jvm_descriptor(C);
  1451. R=oBC496tmp_jvm_descriptor;
  1452. return R;
  1453. }
  1454. /*No:RUN_FEATURE_2.ucs_in_computation*/
  1455. void r820make(T820* C,T0* a1,T0* a2,T0* a3){
  1456. C->_current_type=a1;
  1457. C->_name=a2;
  1458. C->_base_feature=a3;
  1459. r199put(((T199*)((((T355*)((T355*)(r820run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  1460. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  1461. C->_use_current_state=1005;
  1462. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  1463. r820initialize(C);
  1464. r604pop(((T604*)(oBC364small_eiffel)));
  1465. }
  1466. /*No:RUN_FEATURE_2.name*/
  1467. T0* r820jvm_root_class(void){
  1468. if (fBC364jvm_root_class==0){
  1469. T0* R=NULL;
  1470. fBC364jvm_root_class=1;
  1471. {T7*n=malloc(sizeof(*n));
  1472. *n=M7;
  1473. r7make(n,12);
  1474. R=(T0*)n;
  1475. }
  1476. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  1477. r7extend(((T7*)R),'\57');
  1478. r7append(((T7*)R),((T0*)ms112_470));
  1479. oBC364jvm_root_class=R;}
  1480. return oBC364jvm_root_class;}
  1481. int r820arg_count(T820* C){
  1482. int R=0;
  1483. /*IF*/if (((((T820*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1484. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T820*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  1485. }
  1486. /*FI*/return R;
  1487. }
  1488. /*No:RUN_FEATURE_2.local_vars*/
  1489. /*No:RUN_FEATURE_2.base_feature*/
  1490. /*No:RUN_FEATURE_2.start_position*/
  1491. int r820jvm_max_locals(T820* C){
  1492. int R=0;
  1493. R=X291jvm_stack_space((((T820*)C))->_current_type/*4*/);
  1494. /*IF*/if (((((T820*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1495. R=(R)+(r31jvm_stack_space(((T31*)((((T820*)C))->_arguments/*20*/))));
  1496. }
  1497. /*FI*//*IF*//*AF*//*AE*/
  1498. /*FI*//*IF*/if (((((T820*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  1499. R=(R)+(X291jvm_stack_space((((T820*)C))->_result_type/*24*/));
  1500. }
  1501. /*FI*/return R;
  1502. }
  1503. int r820jvm_result_offset(T820* C){
  1504. int R=0;
  1505. R=X291jvm_stack_space((((T820*)C))->_current_type/*4*/);
  1506. /*IF*/if (((((T820*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1507. R=(R)+(r31jvm_stack_space(((T31*)((((T820*)C))->_arguments/*20*/))));
  1508. }
  1509. /*FI*//*IF*//*AF*//*AE*/
  1510. /*FI*/return R;
  1511. }
  1512. int r820is_exported_in(T820* C,T0* a1){
  1513. int R=0;
  1514. R=r636gives_permission_to(((T636*)(r820clients(C))),a1);
  1515. return R;
  1516. }
  1517. /*No:RUN_FEATURE_2.compute_use_current*/
  1518. /*No:RUN_FEATURE_2.result_type*/
  1519. /*No:RUN_FEATURE_2.jvm_field_or_method*/
  1520. int r820jvm_argument_offset(T820* C,T0* a1){
  1521. int R=0;
  1522. R=X291jvm_stack_space((((T820*)C))->_current_type/*4*/);
  1523. R=(R)+(r31jvm_offset_of(((T31*)((((T820*)C))->_arguments/*20*/)),a1));
  1524. return R;
  1525. }
  1526. /*No:RUN_FEATURE_2.is_static*/
  1527. void r820add_client(T820* C,T0* a1){
  1528. int _i=0;
  1529. /*IF*/if (((((T820*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  1530. {T187*n=malloc(sizeof(*n));
  1531. *n=M187;
  1532. r187with_capacity(n,4);
  1533. C->_actuals_clients=(T0*)n;
  1534. }
  1535. r187add_last(((T187*)((((T820*)C))->_actuals_clients/*12*/)),a1);
  1536. }
  1537. else {
  1538. _i=r187fast_index_of(((T187*)((((T820*)C))->_actuals_clients/*12*/)),a1);
  1539. /*IF*/if ((_i)>((((T187*)((T187*)((((T820*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  1540. r187add_last(((T187*)((((T820*)C))->_actuals_clients/*12*/)),a1);
  1541. }
  1542. /*FI*/}
  1543. /*FI*/r355add_client(((T355*)(r820run_class(C))),a1);
  1544. }
  1545. T0* r820jvm_root_descriptor(void){
  1546. if (fBC364jvm_root_descriptor==0){
  1547. T0* R=NULL;
  1548. fBC364jvm_root_descriptor=1;
  1549. {T7*n=malloc(sizeof(*n));
  1550. *n=M7;
  1551. r7make(n,12);
  1552. R=(T0*)n;
  1553. }
  1554. r7extend(((T7*)R),'L');
  1555. r7append(((T7*)R),r820jvm_root_class());
  1556. r7extend(((T7*)R),'\73');
  1557. oBC364jvm_root_descriptor=R;}
  1558. return oBC364jvm_root_descriptor;}
  1559. /*No:RUN_FEATURE_2.use_current_state*/
  1560. /*No:RUN_FEATURE_2.can_be_dropped*/
  1561. void r820mapping_jvm(T820* C){
  1562. int _stack_level=0;
  1563. int _idx=0;
  1564. r228push_target_as_target(((T228*)(oBC364jvm)));
  1565. _stack_level=(X291jvm_stack_space((((T820*)C))->_result_type/*24*/))-(1);
  1566. _idx=r95idx_fieldref(((T95*)(oBC364constant_pool)),(T0*)C);
  1567. r256opcode_getfield(((T256*)(oBC364code_attribute)),_idx,_stack_level);
  1568. }
  1569. /*No:RUN_FEATURE_2.current_type*/
  1570. T0* r820run_class(T820* C){
  1571. T0* R=NULL;
  1572. R=X291run_class((((T820*)C))->_current_type/*4*/);
  1573. return R;
  1574. }
  1575. /*No:RUN_FEATURE_2.static_value_mem*/
  1576. /*No:RUN_FEATURE_2.ucs_not_computed*/
  1577. void r820fall_down(T820* C){
  1578. T0* _rf=NULL;
  1579. T0* _sub_name=NULL;
  1580. T0* _sub_bc=NULL;
  1581. T0* _current_bc=NULL;
  1582. T0* _sub_rc=NULL;
  1583. T0* _current_rc=NULL;
  1584. int _i=0;
  1585. T0* _running=NULL;
  1586. _current_rc=X291run_class((((T820*)C))->_current_type/*4*/);
  1587. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  1588. /*IF*/if ((_running)!=((void*)(NULL))) {
  1589. _current_bc=X291base_class((((T820*)C))->_current_type/*4*/);
  1590. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  1591. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  1592. _sub_rc=r396item(((T396*)_running),_i);
  1593. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  1594. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  1595. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T820*)C))->_name/*16*/);
  1596. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  1597. }
  1598. /*FI*/_i=(_i)+(1);
  1599. }
  1600. }
  1601. /*FI*/}
  1602. /*No:RUN_FEATURE_2.fz_jvm_root*/
  1603. /*No:RUN_FEATURE_2.ucs_false*/
  1604. /*No:RUN_FEATURE_2.is_pre_computable*/
  1605. T0* r820clients(T820* C){
  1606. T0* R=NULL;
  1607. T0* _bfbc=NULL;
  1608. T0* _bc=NULL;
  1609. /*IF*/if (((((T820*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  1610. _bc=X291base_class((((T820*)C))->_current_type/*4*/);
  1611. _bfbc=(((T106*)((T106*)((((T820*)C))->_base_feature/*32*/))))->_base_class/*4*/;
  1612. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  1613. R=(((T106*)((T106*)((((T820*)C))->_base_feature/*32*/))))->_clients/*20*/;
  1614. }
  1615. else {
  1616. R=r605clients_for(((T605*)_bc),(((T820*)C))->_name/*16*/);
  1617. }
  1618. /*FI*/C->_clients_memory=R;
  1619. }
  1620. else {
  1621. R=(((T820*)C))->_clients_memory/*8*/;
  1622. }
  1623. /*FI*/return R;
  1624. }
  1625. int r820use_current(T820* C){
  1626. int R=0;
  1627. {int z1=(((T820*)C))->_use_current_state/*28*/;
  1628.  
  1629. if((1004==z1)){
  1630. R=1;
  1631. }
  1632.  else 
  1633. if((1003==z1)){
  1634. }
  1635.  else 
  1636. if((1005==z1)){
  1637. C->_use_current_state=1006;
  1638. /*[IRF3.3compute_use_current*/((((T820*)(C)))->_use_current_state)=(1004);
  1639. /*]*/
  1640. R=r820use_current(C);
  1641. }
  1642.  else {R=1;
  1643. }}
  1644. return R;
  1645. }
  1646. void r820jvm_define(T820* C){
  1647. T0* _cp=NULL;
  1648. int _descriptor=0;
  1649. int _name_idx=0;
  1650. _cp=oBC364constant_pool;
  1651. _name_idx=r95idx_uft8(((T95*)_cp),X776to_string((((T820*)C))->_name/*16*/));
  1652. _descriptor=r95idx_uft8(((T95*)_cp),r820jvm_descriptor(C));
  1653. r543add(((T543*)(oBC364field_info)),1,_name_idx,_descriptor);
  1654. }
  1655. int r820jvm_local_variable_offset(T820* C,T0* a1){
  1656. int R=0;
  1657. R=X291jvm_stack_space((((T820*)C))->_current_type/*4*/);
  1658. /*IF*/if (((((T820*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1659. R=(R)+(r31jvm_stack_space(((T31*)((((T820*)C))->_arguments/*20*/))));
  1660. }
  1661. /*FI*/R=(R)+(r620jvm_offset_of(((T620*)(/*(IRF4.1local_vars*/NULL/*)*/)),a1));
  1662. return R;
  1663. }
  1664. /*No:RUN_FEATURE_2.clients_memory*/
  1665. void r820initialize(T820* C){
  1666. C->_result_type=X291to_runnable((((T106*)((T106*)((((T820*)C))->_base_feature/*32*/))))->_result_type/*12*/,(((T820*)C))->_current_type/*4*/);
  1667. }
  1668. void r820afd_check(T820* C){
  1669. T0* _rc=NULL;
  1670. _rc=X291run_class(X291run_type((((T820*)C))->_result_type/*24*/));
  1671. }
  1672. void r820update_tmp_jvm_descriptor(T820* C){
  1673. T0* _rt=NULL;
  1674. _rt=X291run_type((((T820*)C))->_result_type/*24*/);
  1675. /*IF*/if (X291is_reference(_rt)) {
  1676. r7append(((T7*)(oBC496tmp_jvm_descriptor)),r820jvm_root_descriptor());
  1677. }
  1678. else {
  1679. X291jvm_descriptor_in(_rt,oBC496tmp_jvm_descriptor);
  1680. }
  1681. /*FI*/}
  1682. int r542affect(T542* C,T0* a1){
  1683. int R=0;
  1684. /*IF*/if (/*(IRF4.7for_all*/((((T542*)C))->_list/*4*/)==(NULL)/*)*/) {
  1685. R=1;
  1686. }
  1687. else {
  1688. R=r953has(((T953*)((((T542*)C))->_list/*4*/)),a1);
  1689. }
  1690. /*FI*/return R;
  1691. }
  1692. void r542make_all(T542* C,T0* a1){
  1693. C->_clients=a1;
  1694. C->_list=NULL;
  1695. }
  1696.  
  1697.